#pragma once
#include <iostream>
#include <string>
namespace um
{
    void macrohelper()
    {
        size_t num = 256;
        std::string macrostr;
        macrostr = "#define ARG_N(";
        for (size_t i = 0; i<num;++i){
            macrostr +="a";
            macrostr += std::to_string(i+1);
            macrostr +=",";
        }
        macrostr +="N,...) N";
        std::cout<<macrostr<<std::endl;

        macrostr = "ARG_N_HELPER(__VA_ARGS__";
        for (size_t i =0;i<=num;++i){
            macrostr+=",";
            macrostr+=std::to_string(num - i);
        }
        macrostr+=")";
        std::cout<<macrostr<<std::endl;

        macrostr = "#define M_BOOL_0 0";
        std::cout<<macrostr<<std::endl;
        for (size_t i =1 ;i<=num;++i){
            macrostr = "#define M_BOOL_";
            macrostr += std::to_string(i);
            macrostr +=" 1";
            std::cout<<macrostr<<std::endl;
        }
        for (size_t i = 2;i<=num;++i){
            printf("#define M_REPEAT_%d(param,sep) M_REPEAT_%d(param, sep)sep M_CAT(param,%d)\n",i,i-1,i);
        }
        for (size_t i =1;i<=num;++i){
            printf("#define M_FOREACH_%d(mfun, param, ...)  mfun(param)M_FOREACH_%d(mfun, ##__VA_ARGS__)\n",i,i-1);
        }
        for (size_t i = 1;i<=num;++i){
            printf("#define M_FOREACH_PAIR_%d(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_%d(mfun,##__VA_ARGS__)\n",i*2,i*2-2);
        }
    }
}



#define _STR(...) #__VA_ARGS__
#define STR(...) _STR(__VA_ARGS__)

#define ARG_T(t) t
#define ARG_N(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a40,a41,a42,a43,a44,a45,a46,a47,a48,a49,a50,a51,a52,a53,a54,a55,a56,a57,a58,a59,a60,a61,a62,a63,a64,a65,a66,a67,a68,a69,a70,a71,a72,a73,a74,a75,a76,a77,a78,a79,a80,a81,a82,a83,a84,a85,a86,a87,a88,a89,a90,a91,a92,a93,a94,a95,a96,a97,a98,a99,a100,a101,a102,a103,a104,a105,a106,a107,a108,a109,a110,a111,a112,a113,a114,a115,a116,a117,a118,a119,a120,a121,a122,a123,a124,a125,N,...) N
#define ARG_N_HELPER(...) ARG_T(ARG_N(__VA_ARGS__))
#define _COUNT_ARG(...) ARG_N_HELPER(__VA_ARGS__,125,124,123,122,121,120,119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)
#define UTIL_COUNT_ARG(...) _COUNT_ARG(__VA_ARGS__)

#define M_EMPTY
#define UTIL_IF(cond, t, f) M_IIF(M_BOOL_EVAL(cond),t,f)
#define M_IIF(bit, t, f) M_IIF_I(bit, t, f)
#define M_IIF_I(bit, t, f) M_IIF_##bit(t,f)
#define M_IIF_0(t,f) f
#define M_IIF_1(t,f) t
#define M_BOOL_EVAL(x) M_BOOL_EVAL_I(x)
#define M_BOOL_EVAL_I(x) M_BOOL_##x
#define M_BOOL_0 0
#define M_BOOL_1 1
#define M_BOOL_2 1
#define M_BOOL_3 1
#define M_BOOL_4 1
#define M_BOOL_5 1
#define M_BOOL_6 1
#define M_BOOL_7 1
#define M_BOOL_8 1
#define M_BOOL_9 1
#define M_BOOL_10 1
#define M_BOOL_11 1
#define M_BOOL_12 1
#define M_BOOL_13 1
#define M_BOOL_14 1
#define M_BOOL_15 1
#define M_BOOL_16 1
#define M_BOOL_17 1
#define M_BOOL_18 1
#define M_BOOL_19 1
#define M_BOOL_20 1
#define M_BOOL_21 1
#define M_BOOL_22 1
#define M_BOOL_23 1
#define M_BOOL_24 1
#define M_BOOL_25 1
#define M_BOOL_26 1
#define M_BOOL_27 1
#define M_BOOL_28 1
#define M_BOOL_29 1
#define M_BOOL_30 1
#define M_BOOL_31 1
#define M_BOOL_32 1
#define M_BOOL_33 1
#define M_BOOL_34 1
#define M_BOOL_35 1
#define M_BOOL_36 1
#define M_BOOL_37 1
#define M_BOOL_38 1
#define M_BOOL_39 1
#define M_BOOL_40 1
#define M_BOOL_41 1
#define M_BOOL_42 1
#define M_BOOL_43 1
#define M_BOOL_44 1
#define M_BOOL_45 1
#define M_BOOL_46 1
#define M_BOOL_47 1
#define M_BOOL_48 1
#define M_BOOL_49 1
#define M_BOOL_50 1
#define M_BOOL_51 1
#define M_BOOL_52 1
#define M_BOOL_53 1
#define M_BOOL_54 1
#define M_BOOL_55 1
#define M_BOOL_56 1
#define M_BOOL_57 1
#define M_BOOL_58 1
#define M_BOOL_59 1
#define M_BOOL_60 1
#define M_BOOL_61 1
#define M_BOOL_62 1
#define M_BOOL_63 1
#define M_BOOL_64 1
#define M_BOOL_65 1
#define M_BOOL_66 1
#define M_BOOL_67 1
#define M_BOOL_68 1
#define M_BOOL_69 1
#define M_BOOL_70 1
#define M_BOOL_71 1
#define M_BOOL_72 1
#define M_BOOL_73 1
#define M_BOOL_74 1
#define M_BOOL_75 1
#define M_BOOL_76 1
#define M_BOOL_77 1
#define M_BOOL_78 1
#define M_BOOL_79 1
#define M_BOOL_80 1
#define M_BOOL_81 1
#define M_BOOL_82 1
#define M_BOOL_83 1
#define M_BOOL_84 1
#define M_BOOL_85 1
#define M_BOOL_86 1
#define M_BOOL_87 1
#define M_BOOL_88 1
#define M_BOOL_89 1
#define M_BOOL_90 1
#define M_BOOL_91 1
#define M_BOOL_92 1
#define M_BOOL_93 1
#define M_BOOL_94 1
#define M_BOOL_95 1
#define M_BOOL_96 1
#define M_BOOL_97 1
#define M_BOOL_98 1
#define M_BOOL_99 1
#define M_BOOL_100 1
#define M_BOOL_101 1
#define M_BOOL_102 1
#define M_BOOL_103 1
#define M_BOOL_104 1
#define M_BOOL_105 1
#define M_BOOL_106 1
#define M_BOOL_107 1
#define M_BOOL_108 1
#define M_BOOL_109 1
#define M_BOOL_110 1
#define M_BOOL_111 1
#define M_BOOL_112 1
#define M_BOOL_113 1
#define M_BOOL_114 1
#define M_BOOL_115 1
#define M_BOOL_116 1
#define M_BOOL_117 1
#define M_BOOL_118 1
#define M_BOOL_119 1
#define M_BOOL_120 1
#define M_BOOL_121 1
#define M_BOOL_122 1
#define M_BOOL_123 1
#define M_BOOL_124 1
#define M_BOOL_125 1
#define M_BOOL_126 1
#define M_BOOL_127 1
#define M_BOOL_128 1
#define M_BOOL_129 1
#define M_BOOL_130 1
#define M_BOOL_131 1
#define M_BOOL_132 1
#define M_BOOL_133 1
#define M_BOOL_134 1
#define M_BOOL_135 1
#define M_BOOL_136 1
#define M_BOOL_137 1
#define M_BOOL_138 1
#define M_BOOL_139 1
#define M_BOOL_140 1
#define M_BOOL_141 1
#define M_BOOL_142 1
#define M_BOOL_143 1
#define M_BOOL_144 1
#define M_BOOL_145 1
#define M_BOOL_146 1
#define M_BOOL_147 1
#define M_BOOL_148 1
#define M_BOOL_149 1
#define M_BOOL_150 1
#define M_BOOL_151 1
#define M_BOOL_152 1
#define M_BOOL_153 1
#define M_BOOL_154 1
#define M_BOOL_155 1
#define M_BOOL_156 1
#define M_BOOL_157 1
#define M_BOOL_158 1
#define M_BOOL_159 1
#define M_BOOL_160 1
#define M_BOOL_161 1
#define M_BOOL_162 1
#define M_BOOL_163 1
#define M_BOOL_164 1
#define M_BOOL_165 1
#define M_BOOL_166 1
#define M_BOOL_167 1
#define M_BOOL_168 1
#define M_BOOL_169 1
#define M_BOOL_170 1
#define M_BOOL_171 1
#define M_BOOL_172 1
#define M_BOOL_173 1
#define M_BOOL_174 1
#define M_BOOL_175 1
#define M_BOOL_176 1
#define M_BOOL_177 1
#define M_BOOL_178 1
#define M_BOOL_179 1
#define M_BOOL_180 1
#define M_BOOL_181 1
#define M_BOOL_182 1
#define M_BOOL_183 1
#define M_BOOL_184 1
#define M_BOOL_185 1
#define M_BOOL_186 1
#define M_BOOL_187 1
#define M_BOOL_188 1
#define M_BOOL_189 1
#define M_BOOL_190 1
#define M_BOOL_191 1
#define M_BOOL_192 1
#define M_BOOL_193 1
#define M_BOOL_194 1
#define M_BOOL_195 1
#define M_BOOL_196 1
#define M_BOOL_197 1
#define M_BOOL_198 1
#define M_BOOL_199 1
#define M_BOOL_200 1
#define M_BOOL_201 1
#define M_BOOL_202 1
#define M_BOOL_203 1
#define M_BOOL_204 1
#define M_BOOL_205 1
#define M_BOOL_206 1
#define M_BOOL_207 1
#define M_BOOL_208 1
#define M_BOOL_209 1
#define M_BOOL_210 1
#define M_BOOL_211 1
#define M_BOOL_212 1
#define M_BOOL_213 1
#define M_BOOL_214 1
#define M_BOOL_215 1
#define M_BOOL_216 1
#define M_BOOL_217 1
#define M_BOOL_218 1
#define M_BOOL_219 1
#define M_BOOL_220 1
#define M_BOOL_221 1
#define M_BOOL_222 1
#define M_BOOL_223 1
#define M_BOOL_224 1
#define M_BOOL_225 1
#define M_BOOL_226 1
#define M_BOOL_227 1
#define M_BOOL_228 1
#define M_BOOL_229 1
#define M_BOOL_230 1
#define M_BOOL_231 1
#define M_BOOL_232 1
#define M_BOOL_233 1
#define M_BOOL_234 1
#define M_BOOL_235 1
#define M_BOOL_236 1
#define M_BOOL_237 1
#define M_BOOL_238 1
#define M_BOOL_239 1
#define M_BOOL_240 1
#define M_BOOL_241 1
#define M_BOOL_242 1
#define M_BOOL_243 1
#define M_BOOL_244 1
#define M_BOOL_245 1
#define M_BOOL_246 1
#define M_BOOL_247 1
#define M_BOOL_248 1
#define M_BOOL_249 1
#define M_BOOL_250 1
#define M_BOOL_251 1
#define M_BOOL_252 1
#define M_BOOL_253 1
#define M_BOOL_254 1
#define M_BOOL_255 1
#define M_BOOL_256 1

#define M_COMMA ,
#define UTIL_REPEAT_ENUM_PARAMS_SEP(count, param, sep) M_REPEAT_PARAMS_SEP(count,M_REPEAT_,param,sep)
#define M_REPEAT_PARAMS_SEP(count, m, param,sep) m##count(param, sep)

#define UTIL_REPEAT_ENUM_PARAMS(count, param) M_REPEAT_PARAMS(count, M_REPEAT_, param)
#define M_REPEAT_PARAMS(count, m, param) m##count(param, M_COMMA)



#define M_CAT(param, num) param##num


#define M_REPEAT_0(param) M_EMPTY
#define M_REPEAT_1(param,sep) M_REPEAT_0(param) M_CAT(param,1)
#define M_REPEAT_2(param,sep) M_REPEAT_1(param, sep)sep M_CAT(param,2)
#define M_REPEAT_3(param,sep) M_REPEAT_2(param, sep)sep M_CAT(param,3)
#define M_REPEAT_4(param,sep) M_REPEAT_3(param, sep)sep M_CAT(param,4)
#define M_REPEAT_5(param,sep) M_REPEAT_4(param, sep)sep M_CAT(param,5)
#define M_REPEAT_6(param,sep) M_REPEAT_5(param, sep)sep M_CAT(param,6)
#define M_REPEAT_7(param,sep) M_REPEAT_6(param, sep)sep M_CAT(param,7)
#define M_REPEAT_8(param,sep) M_REPEAT_7(param, sep)sep M_CAT(param,8)
#define M_REPEAT_9(param,sep) M_REPEAT_8(param, sep)sep M_CAT(param,9)
#define M_REPEAT_10(param,sep) M_REPEAT_9(param, sep)sep M_CAT(param,10)
#define M_REPEAT_11(param,sep) M_REPEAT_10(param, sep)sep M_CAT(param,11)
#define M_REPEAT_12(param,sep) M_REPEAT_11(param, sep)sep M_CAT(param,12)
#define M_REPEAT_13(param,sep) M_REPEAT_12(param, sep)sep M_CAT(param,13)
#define M_REPEAT_14(param,sep) M_REPEAT_13(param, sep)sep M_CAT(param,14)
#define M_REPEAT_15(param,sep) M_REPEAT_14(param, sep)sep M_CAT(param,15)
#define M_REPEAT_16(param,sep) M_REPEAT_15(param, sep)sep M_CAT(param,16)
#define M_REPEAT_17(param,sep) M_REPEAT_16(param, sep)sep M_CAT(param,17)
#define M_REPEAT_18(param,sep) M_REPEAT_17(param, sep)sep M_CAT(param,18)
#define M_REPEAT_19(param,sep) M_REPEAT_18(param, sep)sep M_CAT(param,19)
#define M_REPEAT_20(param,sep) M_REPEAT_19(param, sep)sep M_CAT(param,20)
#define M_REPEAT_21(param,sep) M_REPEAT_20(param, sep)sep M_CAT(param,21)
#define M_REPEAT_22(param,sep) M_REPEAT_21(param, sep)sep M_CAT(param,22)
#define M_REPEAT_23(param,sep) M_REPEAT_22(param, sep)sep M_CAT(param,23)
#define M_REPEAT_24(param,sep) M_REPEAT_23(param, sep)sep M_CAT(param,24)
#define M_REPEAT_25(param,sep) M_REPEAT_24(param, sep)sep M_CAT(param,25)
#define M_REPEAT_26(param,sep) M_REPEAT_25(param, sep)sep M_CAT(param,26)
#define M_REPEAT_27(param,sep) M_REPEAT_26(param, sep)sep M_CAT(param,27)
#define M_REPEAT_28(param,sep) M_REPEAT_27(param, sep)sep M_CAT(param,28)
#define M_REPEAT_29(param,sep) M_REPEAT_28(param, sep)sep M_CAT(param,29)
#define M_REPEAT_30(param,sep) M_REPEAT_29(param, sep)sep M_CAT(param,30)
#define M_REPEAT_31(param,sep) M_REPEAT_30(param, sep)sep M_CAT(param,31)
#define M_REPEAT_32(param,sep) M_REPEAT_31(param, sep)sep M_CAT(param,32)
#define M_REPEAT_33(param,sep) M_REPEAT_32(param, sep)sep M_CAT(param,33)
#define M_REPEAT_34(param,sep) M_REPEAT_33(param, sep)sep M_CAT(param,34)
#define M_REPEAT_35(param,sep) M_REPEAT_34(param, sep)sep M_CAT(param,35)
#define M_REPEAT_36(param,sep) M_REPEAT_35(param, sep)sep M_CAT(param,36)
#define M_REPEAT_37(param,sep) M_REPEAT_36(param, sep)sep M_CAT(param,37)
#define M_REPEAT_38(param,sep) M_REPEAT_37(param, sep)sep M_CAT(param,38)
#define M_REPEAT_39(param,sep) M_REPEAT_38(param, sep)sep M_CAT(param,39)
#define M_REPEAT_40(param,sep) M_REPEAT_39(param, sep)sep M_CAT(param,40)
#define M_REPEAT_41(param,sep) M_REPEAT_40(param, sep)sep M_CAT(param,41)
#define M_REPEAT_42(param,sep) M_REPEAT_41(param, sep)sep M_CAT(param,42)
#define M_REPEAT_43(param,sep) M_REPEAT_42(param, sep)sep M_CAT(param,43)
#define M_REPEAT_44(param,sep) M_REPEAT_43(param, sep)sep M_CAT(param,44)
#define M_REPEAT_45(param,sep) M_REPEAT_44(param, sep)sep M_CAT(param,45)
#define M_REPEAT_46(param,sep) M_REPEAT_45(param, sep)sep M_CAT(param,46)
#define M_REPEAT_47(param,sep) M_REPEAT_46(param, sep)sep M_CAT(param,47)
#define M_REPEAT_48(param,sep) M_REPEAT_47(param, sep)sep M_CAT(param,48)
#define M_REPEAT_49(param,sep) M_REPEAT_48(param, sep)sep M_CAT(param,49)
#define M_REPEAT_50(param,sep) M_REPEAT_49(param, sep)sep M_CAT(param,50)
#define M_REPEAT_51(param,sep) M_REPEAT_50(param, sep)sep M_CAT(param,51)
#define M_REPEAT_52(param,sep) M_REPEAT_51(param, sep)sep M_CAT(param,52)
#define M_REPEAT_53(param,sep) M_REPEAT_52(param, sep)sep M_CAT(param,53)
#define M_REPEAT_54(param,sep) M_REPEAT_53(param, sep)sep M_CAT(param,54)
#define M_REPEAT_55(param,sep) M_REPEAT_54(param, sep)sep M_CAT(param,55)
#define M_REPEAT_56(param,sep) M_REPEAT_55(param, sep)sep M_CAT(param,56)
#define M_REPEAT_57(param,sep) M_REPEAT_56(param, sep)sep M_CAT(param,57)
#define M_REPEAT_58(param,sep) M_REPEAT_57(param, sep)sep M_CAT(param,58)
#define M_REPEAT_59(param,sep) M_REPEAT_58(param, sep)sep M_CAT(param,59)
#define M_REPEAT_60(param,sep) M_REPEAT_59(param, sep)sep M_CAT(param,60)
#define M_REPEAT_61(param,sep) M_REPEAT_60(param, sep)sep M_CAT(param,61)
#define M_REPEAT_62(param,sep) M_REPEAT_61(param, sep)sep M_CAT(param,62)
#define M_REPEAT_63(param,sep) M_REPEAT_62(param, sep)sep M_CAT(param,63)
#define M_REPEAT_64(param,sep) M_REPEAT_63(param, sep)sep M_CAT(param,64)
#define M_REPEAT_65(param,sep) M_REPEAT_64(param, sep)sep M_CAT(param,65)
#define M_REPEAT_66(param,sep) M_REPEAT_65(param, sep)sep M_CAT(param,66)
#define M_REPEAT_67(param,sep) M_REPEAT_66(param, sep)sep M_CAT(param,67)
#define M_REPEAT_68(param,sep) M_REPEAT_67(param, sep)sep M_CAT(param,68)
#define M_REPEAT_69(param,sep) M_REPEAT_68(param, sep)sep M_CAT(param,69)
#define M_REPEAT_70(param,sep) M_REPEAT_69(param, sep)sep M_CAT(param,70)
#define M_REPEAT_71(param,sep) M_REPEAT_70(param, sep)sep M_CAT(param,71)
#define M_REPEAT_72(param,sep) M_REPEAT_71(param, sep)sep M_CAT(param,72)
#define M_REPEAT_73(param,sep) M_REPEAT_72(param, sep)sep M_CAT(param,73)
#define M_REPEAT_74(param,sep) M_REPEAT_73(param, sep)sep M_CAT(param,74)
#define M_REPEAT_75(param,sep) M_REPEAT_74(param, sep)sep M_CAT(param,75)
#define M_REPEAT_76(param,sep) M_REPEAT_75(param, sep)sep M_CAT(param,76)
#define M_REPEAT_77(param,sep) M_REPEAT_76(param, sep)sep M_CAT(param,77)
#define M_REPEAT_78(param,sep) M_REPEAT_77(param, sep)sep M_CAT(param,78)
#define M_REPEAT_79(param,sep) M_REPEAT_78(param, sep)sep M_CAT(param,79)
#define M_REPEAT_80(param,sep) M_REPEAT_79(param, sep)sep M_CAT(param,80)
#define M_REPEAT_81(param,sep) M_REPEAT_80(param, sep)sep M_CAT(param,81)
#define M_REPEAT_82(param,sep) M_REPEAT_81(param, sep)sep M_CAT(param,82)
#define M_REPEAT_83(param,sep) M_REPEAT_82(param, sep)sep M_CAT(param,83)
#define M_REPEAT_84(param,sep) M_REPEAT_83(param, sep)sep M_CAT(param,84)
#define M_REPEAT_85(param,sep) M_REPEAT_84(param, sep)sep M_CAT(param,85)
#define M_REPEAT_86(param,sep) M_REPEAT_85(param, sep)sep M_CAT(param,86)
#define M_REPEAT_87(param,sep) M_REPEAT_86(param, sep)sep M_CAT(param,87)
#define M_REPEAT_88(param,sep) M_REPEAT_87(param, sep)sep M_CAT(param,88)
#define M_REPEAT_89(param,sep) M_REPEAT_88(param, sep)sep M_CAT(param,89)
#define M_REPEAT_90(param,sep) M_REPEAT_89(param, sep)sep M_CAT(param,90)
#define M_REPEAT_91(param,sep) M_REPEAT_90(param, sep)sep M_CAT(param,91)
#define M_REPEAT_92(param,sep) M_REPEAT_91(param, sep)sep M_CAT(param,92)
#define M_REPEAT_93(param,sep) M_REPEAT_92(param, sep)sep M_CAT(param,93)
#define M_REPEAT_94(param,sep) M_REPEAT_93(param, sep)sep M_CAT(param,94)
#define M_REPEAT_95(param,sep) M_REPEAT_94(param, sep)sep M_CAT(param,95)
#define M_REPEAT_96(param,sep) M_REPEAT_95(param, sep)sep M_CAT(param,96)
#define M_REPEAT_97(param,sep) M_REPEAT_96(param, sep)sep M_CAT(param,97)
#define M_REPEAT_98(param,sep) M_REPEAT_97(param, sep)sep M_CAT(param,98)
#define M_REPEAT_99(param,sep) M_REPEAT_98(param, sep)sep M_CAT(param,99)
#define M_REPEAT_100(param,sep) M_REPEAT_99(param, sep)sep M_CAT(param,100)
#define M_REPEAT_101(param,sep) M_REPEAT_100(param, sep)sep M_CAT(param,101)
#define M_REPEAT_102(param,sep) M_REPEAT_101(param, sep)sep M_CAT(param,102)
#define M_REPEAT_103(param,sep) M_REPEAT_102(param, sep)sep M_CAT(param,103)
#define M_REPEAT_104(param,sep) M_REPEAT_103(param, sep)sep M_CAT(param,104)
#define M_REPEAT_105(param,sep) M_REPEAT_104(param, sep)sep M_CAT(param,105)
#define M_REPEAT_106(param,sep) M_REPEAT_105(param, sep)sep M_CAT(param,106)
#define M_REPEAT_107(param,sep) M_REPEAT_106(param, sep)sep M_CAT(param,107)
#define M_REPEAT_108(param,sep) M_REPEAT_107(param, sep)sep M_CAT(param,108)
#define M_REPEAT_109(param,sep) M_REPEAT_108(param, sep)sep M_CAT(param,109)
#define M_REPEAT_110(param,sep) M_REPEAT_109(param, sep)sep M_CAT(param,110)
#define M_REPEAT_111(param,sep) M_REPEAT_110(param, sep)sep M_CAT(param,111)
#define M_REPEAT_112(param,sep) M_REPEAT_111(param, sep)sep M_CAT(param,112)
#define M_REPEAT_113(param,sep) M_REPEAT_112(param, sep)sep M_CAT(param,113)
#define M_REPEAT_114(param,sep) M_REPEAT_113(param, sep)sep M_CAT(param,114)
#define M_REPEAT_115(param,sep) M_REPEAT_114(param, sep)sep M_CAT(param,115)
#define M_REPEAT_116(param,sep) M_REPEAT_115(param, sep)sep M_CAT(param,116)
#define M_REPEAT_117(param,sep) M_REPEAT_116(param, sep)sep M_CAT(param,117)
#define M_REPEAT_118(param,sep) M_REPEAT_117(param, sep)sep M_CAT(param,118)
#define M_REPEAT_119(param,sep) M_REPEAT_118(param, sep)sep M_CAT(param,119)
#define M_REPEAT_120(param,sep) M_REPEAT_119(param, sep)sep M_CAT(param,120)
#define M_REPEAT_121(param,sep) M_REPEAT_120(param, sep)sep M_CAT(param,121)
#define M_REPEAT_122(param,sep) M_REPEAT_121(param, sep)sep M_CAT(param,122)
#define M_REPEAT_123(param,sep) M_REPEAT_122(param, sep)sep M_CAT(param,123)
#define M_REPEAT_124(param,sep) M_REPEAT_123(param, sep)sep M_CAT(param,124)
#define M_REPEAT_125(param,sep) M_REPEAT_124(param, sep)sep M_CAT(param,125)
#define M_REPEAT_126(param,sep) M_REPEAT_125(param, sep)sep M_CAT(param,126)
#define M_REPEAT_127(param,sep) M_REPEAT_126(param, sep)sep M_CAT(param,127)
#define M_REPEAT_128(param,sep) M_REPEAT_127(param, sep)sep M_CAT(param,128)
#define M_REPEAT_129(param,sep) M_REPEAT_128(param, sep)sep M_CAT(param,129)
#define M_REPEAT_130(param,sep) M_REPEAT_129(param, sep)sep M_CAT(param,130)
#define M_REPEAT_131(param,sep) M_REPEAT_130(param, sep)sep M_CAT(param,131)
#define M_REPEAT_132(param,sep) M_REPEAT_131(param, sep)sep M_CAT(param,132)
#define M_REPEAT_133(param,sep) M_REPEAT_132(param, sep)sep M_CAT(param,133)
#define M_REPEAT_134(param,sep) M_REPEAT_133(param, sep)sep M_CAT(param,134)
#define M_REPEAT_135(param,sep) M_REPEAT_134(param, sep)sep M_CAT(param,135)
#define M_REPEAT_136(param,sep) M_REPEAT_135(param, sep)sep M_CAT(param,136)
#define M_REPEAT_137(param,sep) M_REPEAT_136(param, sep)sep M_CAT(param,137)
#define M_REPEAT_138(param,sep) M_REPEAT_137(param, sep)sep M_CAT(param,138)
#define M_REPEAT_139(param,sep) M_REPEAT_138(param, sep)sep M_CAT(param,139)
#define M_REPEAT_140(param,sep) M_REPEAT_139(param, sep)sep M_CAT(param,140)
#define M_REPEAT_141(param,sep) M_REPEAT_140(param, sep)sep M_CAT(param,141)
#define M_REPEAT_142(param,sep) M_REPEAT_141(param, sep)sep M_CAT(param,142)
#define M_REPEAT_143(param,sep) M_REPEAT_142(param, sep)sep M_CAT(param,143)
#define M_REPEAT_144(param,sep) M_REPEAT_143(param, sep)sep M_CAT(param,144)
#define M_REPEAT_145(param,sep) M_REPEAT_144(param, sep)sep M_CAT(param,145)
#define M_REPEAT_146(param,sep) M_REPEAT_145(param, sep)sep M_CAT(param,146)
#define M_REPEAT_147(param,sep) M_REPEAT_146(param, sep)sep M_CAT(param,147)
#define M_REPEAT_148(param,sep) M_REPEAT_147(param, sep)sep M_CAT(param,148)
#define M_REPEAT_149(param,sep) M_REPEAT_148(param, sep)sep M_CAT(param,149)
#define M_REPEAT_150(param,sep) M_REPEAT_149(param, sep)sep M_CAT(param,150)
#define M_REPEAT_151(param,sep) M_REPEAT_150(param, sep)sep M_CAT(param,151)
#define M_REPEAT_152(param,sep) M_REPEAT_151(param, sep)sep M_CAT(param,152)
#define M_REPEAT_153(param,sep) M_REPEAT_152(param, sep)sep M_CAT(param,153)
#define M_REPEAT_154(param,sep) M_REPEAT_153(param, sep)sep M_CAT(param,154)
#define M_REPEAT_155(param,sep) M_REPEAT_154(param, sep)sep M_CAT(param,155)
#define M_REPEAT_156(param,sep) M_REPEAT_155(param, sep)sep M_CAT(param,156)
#define M_REPEAT_157(param,sep) M_REPEAT_156(param, sep)sep M_CAT(param,157)
#define M_REPEAT_158(param,sep) M_REPEAT_157(param, sep)sep M_CAT(param,158)
#define M_REPEAT_159(param,sep) M_REPEAT_158(param, sep)sep M_CAT(param,159)
#define M_REPEAT_160(param,sep) M_REPEAT_159(param, sep)sep M_CAT(param,160)
#define M_REPEAT_161(param,sep) M_REPEAT_160(param, sep)sep M_CAT(param,161)
#define M_REPEAT_162(param,sep) M_REPEAT_161(param, sep)sep M_CAT(param,162)
#define M_REPEAT_163(param,sep) M_REPEAT_162(param, sep)sep M_CAT(param,163)
#define M_REPEAT_164(param,sep) M_REPEAT_163(param, sep)sep M_CAT(param,164)
#define M_REPEAT_165(param,sep) M_REPEAT_164(param, sep)sep M_CAT(param,165)
#define M_REPEAT_166(param,sep) M_REPEAT_165(param, sep)sep M_CAT(param,166)
#define M_REPEAT_167(param,sep) M_REPEAT_166(param, sep)sep M_CAT(param,167)
#define M_REPEAT_168(param,sep) M_REPEAT_167(param, sep)sep M_CAT(param,168)
#define M_REPEAT_169(param,sep) M_REPEAT_168(param, sep)sep M_CAT(param,169)
#define M_REPEAT_170(param,sep) M_REPEAT_169(param, sep)sep M_CAT(param,170)
#define M_REPEAT_171(param,sep) M_REPEAT_170(param, sep)sep M_CAT(param,171)
#define M_REPEAT_172(param,sep) M_REPEAT_171(param, sep)sep M_CAT(param,172)
#define M_REPEAT_173(param,sep) M_REPEAT_172(param, sep)sep M_CAT(param,173)
#define M_REPEAT_174(param,sep) M_REPEAT_173(param, sep)sep M_CAT(param,174)
#define M_REPEAT_175(param,sep) M_REPEAT_174(param, sep)sep M_CAT(param,175)
#define M_REPEAT_176(param,sep) M_REPEAT_175(param, sep)sep M_CAT(param,176)
#define M_REPEAT_177(param,sep) M_REPEAT_176(param, sep)sep M_CAT(param,177)
#define M_REPEAT_178(param,sep) M_REPEAT_177(param, sep)sep M_CAT(param,178)
#define M_REPEAT_179(param,sep) M_REPEAT_178(param, sep)sep M_CAT(param,179)
#define M_REPEAT_180(param,sep) M_REPEAT_179(param, sep)sep M_CAT(param,180)
#define M_REPEAT_181(param,sep) M_REPEAT_180(param, sep)sep M_CAT(param,181)
#define M_REPEAT_182(param,sep) M_REPEAT_181(param, sep)sep M_CAT(param,182)
#define M_REPEAT_183(param,sep) M_REPEAT_182(param, sep)sep M_CAT(param,183)
#define M_REPEAT_184(param,sep) M_REPEAT_183(param, sep)sep M_CAT(param,184)
#define M_REPEAT_185(param,sep) M_REPEAT_184(param, sep)sep M_CAT(param,185)
#define M_REPEAT_186(param,sep) M_REPEAT_185(param, sep)sep M_CAT(param,186)
#define M_REPEAT_187(param,sep) M_REPEAT_186(param, sep)sep M_CAT(param,187)
#define M_REPEAT_188(param,sep) M_REPEAT_187(param, sep)sep M_CAT(param,188)
#define M_REPEAT_189(param,sep) M_REPEAT_188(param, sep)sep M_CAT(param,189)
#define M_REPEAT_190(param,sep) M_REPEAT_189(param, sep)sep M_CAT(param,190)
#define M_REPEAT_191(param,sep) M_REPEAT_190(param, sep)sep M_CAT(param,191)
#define M_REPEAT_192(param,sep) M_REPEAT_191(param, sep)sep M_CAT(param,192)
#define M_REPEAT_193(param,sep) M_REPEAT_192(param, sep)sep M_CAT(param,193)
#define M_REPEAT_194(param,sep) M_REPEAT_193(param, sep)sep M_CAT(param,194)
#define M_REPEAT_195(param,sep) M_REPEAT_194(param, sep)sep M_CAT(param,195)
#define M_REPEAT_196(param,sep) M_REPEAT_195(param, sep)sep M_CAT(param,196)
#define M_REPEAT_197(param,sep) M_REPEAT_196(param, sep)sep M_CAT(param,197)
#define M_REPEAT_198(param,sep) M_REPEAT_197(param, sep)sep M_CAT(param,198)
#define M_REPEAT_199(param,sep) M_REPEAT_198(param, sep)sep M_CAT(param,199)
#define M_REPEAT_200(param,sep) M_REPEAT_199(param, sep)sep M_CAT(param,200)
#define M_REPEAT_201(param,sep) M_REPEAT_200(param, sep)sep M_CAT(param,201)
#define M_REPEAT_202(param,sep) M_REPEAT_201(param, sep)sep M_CAT(param,202)
#define M_REPEAT_203(param,sep) M_REPEAT_202(param, sep)sep M_CAT(param,203)
#define M_REPEAT_204(param,sep) M_REPEAT_203(param, sep)sep M_CAT(param,204)
#define M_REPEAT_205(param,sep) M_REPEAT_204(param, sep)sep M_CAT(param,205)
#define M_REPEAT_206(param,sep) M_REPEAT_205(param, sep)sep M_CAT(param,206)
#define M_REPEAT_207(param,sep) M_REPEAT_206(param, sep)sep M_CAT(param,207)
#define M_REPEAT_208(param,sep) M_REPEAT_207(param, sep)sep M_CAT(param,208)
#define M_REPEAT_209(param,sep) M_REPEAT_208(param, sep)sep M_CAT(param,209)
#define M_REPEAT_210(param,sep) M_REPEAT_209(param, sep)sep M_CAT(param,210)
#define M_REPEAT_211(param,sep) M_REPEAT_210(param, sep)sep M_CAT(param,211)
#define M_REPEAT_212(param,sep) M_REPEAT_211(param, sep)sep M_CAT(param,212)
#define M_REPEAT_213(param,sep) M_REPEAT_212(param, sep)sep M_CAT(param,213)
#define M_REPEAT_214(param,sep) M_REPEAT_213(param, sep)sep M_CAT(param,214)
#define M_REPEAT_215(param,sep) M_REPEAT_214(param, sep)sep M_CAT(param,215)
#define M_REPEAT_216(param,sep) M_REPEAT_215(param, sep)sep M_CAT(param,216)
#define M_REPEAT_217(param,sep) M_REPEAT_216(param, sep)sep M_CAT(param,217)
#define M_REPEAT_218(param,sep) M_REPEAT_217(param, sep)sep M_CAT(param,218)
#define M_REPEAT_219(param,sep) M_REPEAT_218(param, sep)sep M_CAT(param,219)
#define M_REPEAT_220(param,sep) M_REPEAT_219(param, sep)sep M_CAT(param,220)
#define M_REPEAT_221(param,sep) M_REPEAT_220(param, sep)sep M_CAT(param,221)
#define M_REPEAT_222(param,sep) M_REPEAT_221(param, sep)sep M_CAT(param,222)
#define M_REPEAT_223(param,sep) M_REPEAT_222(param, sep)sep M_CAT(param,223)
#define M_REPEAT_224(param,sep) M_REPEAT_223(param, sep)sep M_CAT(param,224)
#define M_REPEAT_225(param,sep) M_REPEAT_224(param, sep)sep M_CAT(param,225)
#define M_REPEAT_226(param,sep) M_REPEAT_225(param, sep)sep M_CAT(param,226)
#define M_REPEAT_227(param,sep) M_REPEAT_226(param, sep)sep M_CAT(param,227)
#define M_REPEAT_228(param,sep) M_REPEAT_227(param, sep)sep M_CAT(param,228)
#define M_REPEAT_229(param,sep) M_REPEAT_228(param, sep)sep M_CAT(param,229)
#define M_REPEAT_230(param,sep) M_REPEAT_229(param, sep)sep M_CAT(param,230)
#define M_REPEAT_231(param,sep) M_REPEAT_230(param, sep)sep M_CAT(param,231)
#define M_REPEAT_232(param,sep) M_REPEAT_231(param, sep)sep M_CAT(param,232)
#define M_REPEAT_233(param,sep) M_REPEAT_232(param, sep)sep M_CAT(param,233)
#define M_REPEAT_234(param,sep) M_REPEAT_233(param, sep)sep M_CAT(param,234)
#define M_REPEAT_235(param,sep) M_REPEAT_234(param, sep)sep M_CAT(param,235)
#define M_REPEAT_236(param,sep) M_REPEAT_235(param, sep)sep M_CAT(param,236)
#define M_REPEAT_237(param,sep) M_REPEAT_236(param, sep)sep M_CAT(param,237)
#define M_REPEAT_238(param,sep) M_REPEAT_237(param, sep)sep M_CAT(param,238)
#define M_REPEAT_239(param,sep) M_REPEAT_238(param, sep)sep M_CAT(param,239)
#define M_REPEAT_240(param,sep) M_REPEAT_239(param, sep)sep M_CAT(param,240)
#define M_REPEAT_241(param,sep) M_REPEAT_240(param, sep)sep M_CAT(param,241)
#define M_REPEAT_242(param,sep) M_REPEAT_241(param, sep)sep M_CAT(param,242)
#define M_REPEAT_243(param,sep) M_REPEAT_242(param, sep)sep M_CAT(param,243)
#define M_REPEAT_244(param,sep) M_REPEAT_243(param, sep)sep M_CAT(param,244)
#define M_REPEAT_245(param,sep) M_REPEAT_244(param, sep)sep M_CAT(param,245)
#define M_REPEAT_246(param,sep) M_REPEAT_245(param, sep)sep M_CAT(param,246)
#define M_REPEAT_247(param,sep) M_REPEAT_246(param, sep)sep M_CAT(param,247)
#define M_REPEAT_248(param,sep) M_REPEAT_247(param, sep)sep M_CAT(param,248)
#define M_REPEAT_249(param,sep) M_REPEAT_248(param, sep)sep M_CAT(param,249)
#define M_REPEAT_250(param,sep) M_REPEAT_249(param, sep)sep M_CAT(param,250)
#define M_REPEAT_251(param,sep) M_REPEAT_250(param, sep)sep M_CAT(param,251)
#define M_REPEAT_252(param,sep) M_REPEAT_251(param, sep)sep M_CAT(param,252)
#define M_REPEAT_253(param,sep) M_REPEAT_252(param, sep)sep M_CAT(param,253)
#define M_REPEAT_254(param,sep) M_REPEAT_253(param, sep)sep M_CAT(param,254)
#define M_REPEAT_255(param,sep) M_REPEAT_254(param, sep)sep M_CAT(param,255)
#define M_REPEAT_256(param,sep) M_REPEAT_255(param, sep)sep M_CAT(param,256)


#define M_FOREACH_0(mfun) 
#define M_FOREACH_1(mfun, param)  mfun(param)M_FOREACH_0(mfun)
#define M_FOREACH_2(mfun, param, ...)  mfun(param)M_FOREACH_1(mfun, ##__VA_ARGS__)
#define M_FOREACH_3(mfun, param, ...)  mfun(param)M_FOREACH_2(mfun, ##__VA_ARGS__)
#define M_FOREACH_4(mfun, param, ...)  mfun(param)M_FOREACH_3(mfun, ##__VA_ARGS__)
#define M_FOREACH_5(mfun, param, ...)  mfun(param)M_FOREACH_4(mfun, ##__VA_ARGS__)
#define M_FOREACH_6(mfun, param, ...)  mfun(param)M_FOREACH_5(mfun, ##__VA_ARGS__)
#define M_FOREACH_7(mfun, param, ...)  mfun(param)M_FOREACH_6(mfun, ##__VA_ARGS__)
#define M_FOREACH_8(mfun, param, ...)  mfun(param)M_FOREACH_7(mfun, ##__VA_ARGS__)
#define M_FOREACH_9(mfun, param, ...)  mfun(param)M_FOREACH_8(mfun, ##__VA_ARGS__)
#define M_FOREACH_10(mfun, param, ...)  mfun(param)M_FOREACH_9(mfun, ##__VA_ARGS__)
#define M_FOREACH_11(mfun, param, ...)  mfun(param)M_FOREACH_10(mfun, ##__VA_ARGS__)
#define M_FOREACH_12(mfun, param, ...)  mfun(param)M_FOREACH_11(mfun, ##__VA_ARGS__)
#define M_FOREACH_13(mfun, param, ...)  mfun(param)M_FOREACH_12(mfun, ##__VA_ARGS__)
#define M_FOREACH_14(mfun, param, ...)  mfun(param)M_FOREACH_13(mfun, ##__VA_ARGS__)
#define M_FOREACH_15(mfun, param, ...)  mfun(param)M_FOREACH_14(mfun, ##__VA_ARGS__)
#define M_FOREACH_16(mfun, param, ...)  mfun(param)M_FOREACH_15(mfun, ##__VA_ARGS__)
#define M_FOREACH_17(mfun, param, ...)  mfun(param)M_FOREACH_16(mfun, ##__VA_ARGS__)
#define M_FOREACH_18(mfun, param, ...)  mfun(param)M_FOREACH_17(mfun, ##__VA_ARGS__)
#define M_FOREACH_19(mfun, param, ...)  mfun(param)M_FOREACH_18(mfun, ##__VA_ARGS__)
#define M_FOREACH_20(mfun, param, ...)  mfun(param)M_FOREACH_19(mfun, ##__VA_ARGS__)
#define M_FOREACH_21(mfun, param, ...)  mfun(param)M_FOREACH_20(mfun, ##__VA_ARGS__)
#define M_FOREACH_22(mfun, param, ...)  mfun(param)M_FOREACH_21(mfun, ##__VA_ARGS__)
#define M_FOREACH_23(mfun, param, ...)  mfun(param)M_FOREACH_22(mfun, ##__VA_ARGS__)
#define M_FOREACH_24(mfun, param, ...)  mfun(param)M_FOREACH_23(mfun, ##__VA_ARGS__)
#define M_FOREACH_25(mfun, param, ...)  mfun(param)M_FOREACH_24(mfun, ##__VA_ARGS__)
#define M_FOREACH_26(mfun, param, ...)  mfun(param)M_FOREACH_25(mfun, ##__VA_ARGS__)
#define M_FOREACH_27(mfun, param, ...)  mfun(param)M_FOREACH_26(mfun, ##__VA_ARGS__)
#define M_FOREACH_28(mfun, param, ...)  mfun(param)M_FOREACH_27(mfun, ##__VA_ARGS__)
#define M_FOREACH_29(mfun, param, ...)  mfun(param)M_FOREACH_28(mfun, ##__VA_ARGS__)
#define M_FOREACH_30(mfun, param, ...)  mfun(param)M_FOREACH_29(mfun, ##__VA_ARGS__)
#define M_FOREACH_31(mfun, param, ...)  mfun(param)M_FOREACH_30(mfun, ##__VA_ARGS__)
#define M_FOREACH_32(mfun, param, ...)  mfun(param)M_FOREACH_31(mfun, ##__VA_ARGS__)
#define M_FOREACH_33(mfun, param, ...)  mfun(param)M_FOREACH_32(mfun, ##__VA_ARGS__)
#define M_FOREACH_34(mfun, param, ...)  mfun(param)M_FOREACH_33(mfun, ##__VA_ARGS__)
#define M_FOREACH_35(mfun, param, ...)  mfun(param)M_FOREACH_34(mfun, ##__VA_ARGS__)
#define M_FOREACH_36(mfun, param, ...)  mfun(param)M_FOREACH_35(mfun, ##__VA_ARGS__)
#define M_FOREACH_37(mfun, param, ...)  mfun(param)M_FOREACH_36(mfun, ##__VA_ARGS__)
#define M_FOREACH_38(mfun, param, ...)  mfun(param)M_FOREACH_37(mfun, ##__VA_ARGS__)
#define M_FOREACH_39(mfun, param, ...)  mfun(param)M_FOREACH_38(mfun, ##__VA_ARGS__)
#define M_FOREACH_40(mfun, param, ...)  mfun(param)M_FOREACH_39(mfun, ##__VA_ARGS__)
#define M_FOREACH_41(mfun, param, ...)  mfun(param)M_FOREACH_40(mfun, ##__VA_ARGS__)
#define M_FOREACH_42(mfun, param, ...)  mfun(param)M_FOREACH_41(mfun, ##__VA_ARGS__)
#define M_FOREACH_43(mfun, param, ...)  mfun(param)M_FOREACH_42(mfun, ##__VA_ARGS__)
#define M_FOREACH_44(mfun, param, ...)  mfun(param)M_FOREACH_43(mfun, ##__VA_ARGS__)
#define M_FOREACH_45(mfun, param, ...)  mfun(param)M_FOREACH_44(mfun, ##__VA_ARGS__)
#define M_FOREACH_46(mfun, param, ...)  mfun(param)M_FOREACH_45(mfun, ##__VA_ARGS__)
#define M_FOREACH_47(mfun, param, ...)  mfun(param)M_FOREACH_46(mfun, ##__VA_ARGS__)
#define M_FOREACH_48(mfun, param, ...)  mfun(param)M_FOREACH_47(mfun, ##__VA_ARGS__)
#define M_FOREACH_49(mfun, param, ...)  mfun(param)M_FOREACH_48(mfun, ##__VA_ARGS__)
#define M_FOREACH_50(mfun, param, ...)  mfun(param)M_FOREACH_49(mfun, ##__VA_ARGS__)
#define M_FOREACH_51(mfun, param, ...)  mfun(param)M_FOREACH_50(mfun, ##__VA_ARGS__)
#define M_FOREACH_52(mfun, param, ...)  mfun(param)M_FOREACH_51(mfun, ##__VA_ARGS__)
#define M_FOREACH_53(mfun, param, ...)  mfun(param)M_FOREACH_52(mfun, ##__VA_ARGS__)
#define M_FOREACH_54(mfun, param, ...)  mfun(param)M_FOREACH_53(mfun, ##__VA_ARGS__)
#define M_FOREACH_55(mfun, param, ...)  mfun(param)M_FOREACH_54(mfun, ##__VA_ARGS__)
#define M_FOREACH_56(mfun, param, ...)  mfun(param)M_FOREACH_55(mfun, ##__VA_ARGS__)
#define M_FOREACH_57(mfun, param, ...)  mfun(param)M_FOREACH_56(mfun, ##__VA_ARGS__)
#define M_FOREACH_58(mfun, param, ...)  mfun(param)M_FOREACH_57(mfun, ##__VA_ARGS__)
#define M_FOREACH_59(mfun, param, ...)  mfun(param)M_FOREACH_58(mfun, ##__VA_ARGS__)
#define M_FOREACH_60(mfun, param, ...)  mfun(param)M_FOREACH_59(mfun, ##__VA_ARGS__)
#define M_FOREACH_61(mfun, param, ...)  mfun(param)M_FOREACH_60(mfun, ##__VA_ARGS__)
#define M_FOREACH_62(mfun, param, ...)  mfun(param)M_FOREACH_61(mfun, ##__VA_ARGS__)
#define M_FOREACH_63(mfun, param, ...)  mfun(param)M_FOREACH_62(mfun, ##__VA_ARGS__)
#define M_FOREACH_64(mfun, param, ...)  mfun(param)M_FOREACH_63(mfun, ##__VA_ARGS__)
#define M_FOREACH_65(mfun, param, ...)  mfun(param)M_FOREACH_64(mfun, ##__VA_ARGS__)
#define M_FOREACH_66(mfun, param, ...)  mfun(param)M_FOREACH_65(mfun, ##__VA_ARGS__)
#define M_FOREACH_67(mfun, param, ...)  mfun(param)M_FOREACH_66(mfun, ##__VA_ARGS__)
#define M_FOREACH_68(mfun, param, ...)  mfun(param)M_FOREACH_67(mfun, ##__VA_ARGS__)
#define M_FOREACH_69(mfun, param, ...)  mfun(param)M_FOREACH_68(mfun, ##__VA_ARGS__)
#define M_FOREACH_70(mfun, param, ...)  mfun(param)M_FOREACH_69(mfun, ##__VA_ARGS__)
#define M_FOREACH_71(mfun, param, ...)  mfun(param)M_FOREACH_70(mfun, ##__VA_ARGS__)
#define M_FOREACH_72(mfun, param, ...)  mfun(param)M_FOREACH_71(mfun, ##__VA_ARGS__)
#define M_FOREACH_73(mfun, param, ...)  mfun(param)M_FOREACH_72(mfun, ##__VA_ARGS__)
#define M_FOREACH_74(mfun, param, ...)  mfun(param)M_FOREACH_73(mfun, ##__VA_ARGS__)
#define M_FOREACH_75(mfun, param, ...)  mfun(param)M_FOREACH_74(mfun, ##__VA_ARGS__)
#define M_FOREACH_76(mfun, param, ...)  mfun(param)M_FOREACH_75(mfun, ##__VA_ARGS__)
#define M_FOREACH_77(mfun, param, ...)  mfun(param)M_FOREACH_76(mfun, ##__VA_ARGS__)
#define M_FOREACH_78(mfun, param, ...)  mfun(param)M_FOREACH_77(mfun, ##__VA_ARGS__)
#define M_FOREACH_79(mfun, param, ...)  mfun(param)M_FOREACH_78(mfun, ##__VA_ARGS__)
#define M_FOREACH_80(mfun, param, ...)  mfun(param)M_FOREACH_79(mfun, ##__VA_ARGS__)
#define M_FOREACH_81(mfun, param, ...)  mfun(param)M_FOREACH_80(mfun, ##__VA_ARGS__)
#define M_FOREACH_82(mfun, param, ...)  mfun(param)M_FOREACH_81(mfun, ##__VA_ARGS__)
#define M_FOREACH_83(mfun, param, ...)  mfun(param)M_FOREACH_82(mfun, ##__VA_ARGS__)
#define M_FOREACH_84(mfun, param, ...)  mfun(param)M_FOREACH_83(mfun, ##__VA_ARGS__)
#define M_FOREACH_85(mfun, param, ...)  mfun(param)M_FOREACH_84(mfun, ##__VA_ARGS__)
#define M_FOREACH_86(mfun, param, ...)  mfun(param)M_FOREACH_85(mfun, ##__VA_ARGS__)
#define M_FOREACH_87(mfun, param, ...)  mfun(param)M_FOREACH_86(mfun, ##__VA_ARGS__)
#define M_FOREACH_88(mfun, param, ...)  mfun(param)M_FOREACH_87(mfun, ##__VA_ARGS__)
#define M_FOREACH_89(mfun, param, ...)  mfun(param)M_FOREACH_88(mfun, ##__VA_ARGS__)
#define M_FOREACH_90(mfun, param, ...)  mfun(param)M_FOREACH_89(mfun, ##__VA_ARGS__)
#define M_FOREACH_91(mfun, param, ...)  mfun(param)M_FOREACH_90(mfun, ##__VA_ARGS__)
#define M_FOREACH_92(mfun, param, ...)  mfun(param)M_FOREACH_91(mfun, ##__VA_ARGS__)
#define M_FOREACH_93(mfun, param, ...)  mfun(param)M_FOREACH_92(mfun, ##__VA_ARGS__)
#define M_FOREACH_94(mfun, param, ...)  mfun(param)M_FOREACH_93(mfun, ##__VA_ARGS__)
#define M_FOREACH_95(mfun, param, ...)  mfun(param)M_FOREACH_94(mfun, ##__VA_ARGS__)
#define M_FOREACH_96(mfun, param, ...)  mfun(param)M_FOREACH_95(mfun, ##__VA_ARGS__)
#define M_FOREACH_97(mfun, param, ...)  mfun(param)M_FOREACH_96(mfun, ##__VA_ARGS__)
#define M_FOREACH_98(mfun, param, ...)  mfun(param)M_FOREACH_97(mfun, ##__VA_ARGS__)
#define M_FOREACH_99(mfun, param, ...)  mfun(param)M_FOREACH_98(mfun, ##__VA_ARGS__)
#define M_FOREACH_100(mfun, param, ...)  mfun(param)M_FOREACH_99(mfun, ##__VA_ARGS__)
#define M_FOREACH_101(mfun, param, ...)  mfun(param)M_FOREACH_100(mfun, ##__VA_ARGS__)
#define M_FOREACH_102(mfun, param, ...)  mfun(param)M_FOREACH_101(mfun, ##__VA_ARGS__)
#define M_FOREACH_103(mfun, param, ...)  mfun(param)M_FOREACH_102(mfun, ##__VA_ARGS__)
#define M_FOREACH_104(mfun, param, ...)  mfun(param)M_FOREACH_103(mfun, ##__VA_ARGS__)
#define M_FOREACH_105(mfun, param, ...)  mfun(param)M_FOREACH_104(mfun, ##__VA_ARGS__)
#define M_FOREACH_106(mfun, param, ...)  mfun(param)M_FOREACH_105(mfun, ##__VA_ARGS__)
#define M_FOREACH_107(mfun, param, ...)  mfun(param)M_FOREACH_106(mfun, ##__VA_ARGS__)
#define M_FOREACH_108(mfun, param, ...)  mfun(param)M_FOREACH_107(mfun, ##__VA_ARGS__)
#define M_FOREACH_109(mfun, param, ...)  mfun(param)M_FOREACH_108(mfun, ##__VA_ARGS__)
#define M_FOREACH_110(mfun, param, ...)  mfun(param)M_FOREACH_109(mfun, ##__VA_ARGS__)
#define M_FOREACH_111(mfun, param, ...)  mfun(param)M_FOREACH_110(mfun, ##__VA_ARGS__)
#define M_FOREACH_112(mfun, param, ...)  mfun(param)M_FOREACH_111(mfun, ##__VA_ARGS__)
#define M_FOREACH_113(mfun, param, ...)  mfun(param)M_FOREACH_112(mfun, ##__VA_ARGS__)
#define M_FOREACH_114(mfun, param, ...)  mfun(param)M_FOREACH_113(mfun, ##__VA_ARGS__)
#define M_FOREACH_115(mfun, param, ...)  mfun(param)M_FOREACH_114(mfun, ##__VA_ARGS__)
#define M_FOREACH_116(mfun, param, ...)  mfun(param)M_FOREACH_115(mfun, ##__VA_ARGS__)
#define M_FOREACH_117(mfun, param, ...)  mfun(param)M_FOREACH_116(mfun, ##__VA_ARGS__)
#define M_FOREACH_118(mfun, param, ...)  mfun(param)M_FOREACH_117(mfun, ##__VA_ARGS__)
#define M_FOREACH_119(mfun, param, ...)  mfun(param)M_FOREACH_118(mfun, ##__VA_ARGS__)
#define M_FOREACH_120(mfun, param, ...)  mfun(param)M_FOREACH_119(mfun, ##__VA_ARGS__)
#define M_FOREACH_121(mfun, param, ...)  mfun(param)M_FOREACH_120(mfun, ##__VA_ARGS__)
#define M_FOREACH_122(mfun, param, ...)  mfun(param)M_FOREACH_121(mfun, ##__VA_ARGS__)
#define M_FOREACH_123(mfun, param, ...)  mfun(param)M_FOREACH_122(mfun, ##__VA_ARGS__)
#define M_FOREACH_124(mfun, param, ...)  mfun(param)M_FOREACH_123(mfun, ##__VA_ARGS__)
#define M_FOREACH_125(mfun, param, ...)  mfun(param)M_FOREACH_124(mfun, ##__VA_ARGS__)
#define M_FOREACH_126(mfun, param, ...)  mfun(param)M_FOREACH_125(mfun, ##__VA_ARGS__)
#define M_FOREACH_127(mfun, param, ...)  mfun(param)M_FOREACH_126(mfun, ##__VA_ARGS__)
#define M_FOREACH_128(mfun, param, ...)  mfun(param)M_FOREACH_127(mfun, ##__VA_ARGS__)
#define M_FOREACH_129(mfun, param, ...)  mfun(param)M_FOREACH_128(mfun, ##__VA_ARGS__)
#define M_FOREACH_130(mfun, param, ...)  mfun(param)M_FOREACH_129(mfun, ##__VA_ARGS__)
#define M_FOREACH_131(mfun, param, ...)  mfun(param)M_FOREACH_130(mfun, ##__VA_ARGS__)
#define M_FOREACH_132(mfun, param, ...)  mfun(param)M_FOREACH_131(mfun, ##__VA_ARGS__)
#define M_FOREACH_133(mfun, param, ...)  mfun(param)M_FOREACH_132(mfun, ##__VA_ARGS__)
#define M_FOREACH_134(mfun, param, ...)  mfun(param)M_FOREACH_133(mfun, ##__VA_ARGS__)
#define M_FOREACH_135(mfun, param, ...)  mfun(param)M_FOREACH_134(mfun, ##__VA_ARGS__)
#define M_FOREACH_136(mfun, param, ...)  mfun(param)M_FOREACH_135(mfun, ##__VA_ARGS__)
#define M_FOREACH_137(mfun, param, ...)  mfun(param)M_FOREACH_136(mfun, ##__VA_ARGS__)
#define M_FOREACH_138(mfun, param, ...)  mfun(param)M_FOREACH_137(mfun, ##__VA_ARGS__)
#define M_FOREACH_139(mfun, param, ...)  mfun(param)M_FOREACH_138(mfun, ##__VA_ARGS__)
#define M_FOREACH_140(mfun, param, ...)  mfun(param)M_FOREACH_139(mfun, ##__VA_ARGS__)
#define M_FOREACH_141(mfun, param, ...)  mfun(param)M_FOREACH_140(mfun, ##__VA_ARGS__)
#define M_FOREACH_142(mfun, param, ...)  mfun(param)M_FOREACH_141(mfun, ##__VA_ARGS__)
#define M_FOREACH_143(mfun, param, ...)  mfun(param)M_FOREACH_142(mfun, ##__VA_ARGS__)
#define M_FOREACH_144(mfun, param, ...)  mfun(param)M_FOREACH_143(mfun, ##__VA_ARGS__)
#define M_FOREACH_145(mfun, param, ...)  mfun(param)M_FOREACH_144(mfun, ##__VA_ARGS__)
#define M_FOREACH_146(mfun, param, ...)  mfun(param)M_FOREACH_145(mfun, ##__VA_ARGS__)
#define M_FOREACH_147(mfun, param, ...)  mfun(param)M_FOREACH_146(mfun, ##__VA_ARGS__)
#define M_FOREACH_148(mfun, param, ...)  mfun(param)M_FOREACH_147(mfun, ##__VA_ARGS__)
#define M_FOREACH_149(mfun, param, ...)  mfun(param)M_FOREACH_148(mfun, ##__VA_ARGS__)
#define M_FOREACH_150(mfun, param, ...)  mfun(param)M_FOREACH_149(mfun, ##__VA_ARGS__)
#define M_FOREACH_151(mfun, param, ...)  mfun(param)M_FOREACH_150(mfun, ##__VA_ARGS__)
#define M_FOREACH_152(mfun, param, ...)  mfun(param)M_FOREACH_151(mfun, ##__VA_ARGS__)
#define M_FOREACH_153(mfun, param, ...)  mfun(param)M_FOREACH_152(mfun, ##__VA_ARGS__)
#define M_FOREACH_154(mfun, param, ...)  mfun(param)M_FOREACH_153(mfun, ##__VA_ARGS__)
#define M_FOREACH_155(mfun, param, ...)  mfun(param)M_FOREACH_154(mfun, ##__VA_ARGS__)
#define M_FOREACH_156(mfun, param, ...)  mfun(param)M_FOREACH_155(mfun, ##__VA_ARGS__)
#define M_FOREACH_157(mfun, param, ...)  mfun(param)M_FOREACH_156(mfun, ##__VA_ARGS__)
#define M_FOREACH_158(mfun, param, ...)  mfun(param)M_FOREACH_157(mfun, ##__VA_ARGS__)
#define M_FOREACH_159(mfun, param, ...)  mfun(param)M_FOREACH_158(mfun, ##__VA_ARGS__)
#define M_FOREACH_160(mfun, param, ...)  mfun(param)M_FOREACH_159(mfun, ##__VA_ARGS__)
#define M_FOREACH_161(mfun, param, ...)  mfun(param)M_FOREACH_160(mfun, ##__VA_ARGS__)
#define M_FOREACH_162(mfun, param, ...)  mfun(param)M_FOREACH_161(mfun, ##__VA_ARGS__)
#define M_FOREACH_163(mfun, param, ...)  mfun(param)M_FOREACH_162(mfun, ##__VA_ARGS__)
#define M_FOREACH_164(mfun, param, ...)  mfun(param)M_FOREACH_163(mfun, ##__VA_ARGS__)
#define M_FOREACH_165(mfun, param, ...)  mfun(param)M_FOREACH_164(mfun, ##__VA_ARGS__)
#define M_FOREACH_166(mfun, param, ...)  mfun(param)M_FOREACH_165(mfun, ##__VA_ARGS__)
#define M_FOREACH_167(mfun, param, ...)  mfun(param)M_FOREACH_166(mfun, ##__VA_ARGS__)
#define M_FOREACH_168(mfun, param, ...)  mfun(param)M_FOREACH_167(mfun, ##__VA_ARGS__)
#define M_FOREACH_169(mfun, param, ...)  mfun(param)M_FOREACH_168(mfun, ##__VA_ARGS__)
#define M_FOREACH_170(mfun, param, ...)  mfun(param)M_FOREACH_169(mfun, ##__VA_ARGS__)
#define M_FOREACH_171(mfun, param, ...)  mfun(param)M_FOREACH_170(mfun, ##__VA_ARGS__)
#define M_FOREACH_172(mfun, param, ...)  mfun(param)M_FOREACH_171(mfun, ##__VA_ARGS__)
#define M_FOREACH_173(mfun, param, ...)  mfun(param)M_FOREACH_172(mfun, ##__VA_ARGS__)
#define M_FOREACH_174(mfun, param, ...)  mfun(param)M_FOREACH_173(mfun, ##__VA_ARGS__)
#define M_FOREACH_175(mfun, param, ...)  mfun(param)M_FOREACH_174(mfun, ##__VA_ARGS__)
#define M_FOREACH_176(mfun, param, ...)  mfun(param)M_FOREACH_175(mfun, ##__VA_ARGS__)
#define M_FOREACH_177(mfun, param, ...)  mfun(param)M_FOREACH_176(mfun, ##__VA_ARGS__)
#define M_FOREACH_178(mfun, param, ...)  mfun(param)M_FOREACH_177(mfun, ##__VA_ARGS__)
#define M_FOREACH_179(mfun, param, ...)  mfun(param)M_FOREACH_178(mfun, ##__VA_ARGS__)
#define M_FOREACH_180(mfun, param, ...)  mfun(param)M_FOREACH_179(mfun, ##__VA_ARGS__)
#define M_FOREACH_181(mfun, param, ...)  mfun(param)M_FOREACH_180(mfun, ##__VA_ARGS__)
#define M_FOREACH_182(mfun, param, ...)  mfun(param)M_FOREACH_181(mfun, ##__VA_ARGS__)
#define M_FOREACH_183(mfun, param, ...)  mfun(param)M_FOREACH_182(mfun, ##__VA_ARGS__)
#define M_FOREACH_184(mfun, param, ...)  mfun(param)M_FOREACH_183(mfun, ##__VA_ARGS__)
#define M_FOREACH_185(mfun, param, ...)  mfun(param)M_FOREACH_184(mfun, ##__VA_ARGS__)
#define M_FOREACH_186(mfun, param, ...)  mfun(param)M_FOREACH_185(mfun, ##__VA_ARGS__)
#define M_FOREACH_187(mfun, param, ...)  mfun(param)M_FOREACH_186(mfun, ##__VA_ARGS__)
#define M_FOREACH_188(mfun, param, ...)  mfun(param)M_FOREACH_187(mfun, ##__VA_ARGS__)
#define M_FOREACH_189(mfun, param, ...)  mfun(param)M_FOREACH_188(mfun, ##__VA_ARGS__)
#define M_FOREACH_190(mfun, param, ...)  mfun(param)M_FOREACH_189(mfun, ##__VA_ARGS__)
#define M_FOREACH_191(mfun, param, ...)  mfun(param)M_FOREACH_190(mfun, ##__VA_ARGS__)
#define M_FOREACH_192(mfun, param, ...)  mfun(param)M_FOREACH_191(mfun, ##__VA_ARGS__)
#define M_FOREACH_193(mfun, param, ...)  mfun(param)M_FOREACH_192(mfun, ##__VA_ARGS__)
#define M_FOREACH_194(mfun, param, ...)  mfun(param)M_FOREACH_193(mfun, ##__VA_ARGS__)
#define M_FOREACH_195(mfun, param, ...)  mfun(param)M_FOREACH_194(mfun, ##__VA_ARGS__)
#define M_FOREACH_196(mfun, param, ...)  mfun(param)M_FOREACH_195(mfun, ##__VA_ARGS__)
#define M_FOREACH_197(mfun, param, ...)  mfun(param)M_FOREACH_196(mfun, ##__VA_ARGS__)
#define M_FOREACH_198(mfun, param, ...)  mfun(param)M_FOREACH_197(mfun, ##__VA_ARGS__)
#define M_FOREACH_199(mfun, param, ...)  mfun(param)M_FOREACH_198(mfun, ##__VA_ARGS__)
#define M_FOREACH_200(mfun, param, ...)  mfun(param)M_FOREACH_199(mfun, ##__VA_ARGS__)
#define M_FOREACH_201(mfun, param, ...)  mfun(param)M_FOREACH_200(mfun, ##__VA_ARGS__)
#define M_FOREACH_202(mfun, param, ...)  mfun(param)M_FOREACH_201(mfun, ##__VA_ARGS__)
#define M_FOREACH_203(mfun, param, ...)  mfun(param)M_FOREACH_202(mfun, ##__VA_ARGS__)
#define M_FOREACH_204(mfun, param, ...)  mfun(param)M_FOREACH_203(mfun, ##__VA_ARGS__)
#define M_FOREACH_205(mfun, param, ...)  mfun(param)M_FOREACH_204(mfun, ##__VA_ARGS__)
#define M_FOREACH_206(mfun, param, ...)  mfun(param)M_FOREACH_205(mfun, ##__VA_ARGS__)
#define M_FOREACH_207(mfun, param, ...)  mfun(param)M_FOREACH_206(mfun, ##__VA_ARGS__)
#define M_FOREACH_208(mfun, param, ...)  mfun(param)M_FOREACH_207(mfun, ##__VA_ARGS__)
#define M_FOREACH_209(mfun, param, ...)  mfun(param)M_FOREACH_208(mfun, ##__VA_ARGS__)
#define M_FOREACH_210(mfun, param, ...)  mfun(param)M_FOREACH_209(mfun, ##__VA_ARGS__)
#define M_FOREACH_211(mfun, param, ...)  mfun(param)M_FOREACH_210(mfun, ##__VA_ARGS__)
#define M_FOREACH_212(mfun, param, ...)  mfun(param)M_FOREACH_211(mfun, ##__VA_ARGS__)
#define M_FOREACH_213(mfun, param, ...)  mfun(param)M_FOREACH_212(mfun, ##__VA_ARGS__)
#define M_FOREACH_214(mfun, param, ...)  mfun(param)M_FOREACH_213(mfun, ##__VA_ARGS__)
#define M_FOREACH_215(mfun, param, ...)  mfun(param)M_FOREACH_214(mfun, ##__VA_ARGS__)
#define M_FOREACH_216(mfun, param, ...)  mfun(param)M_FOREACH_215(mfun, ##__VA_ARGS__)
#define M_FOREACH_217(mfun, param, ...)  mfun(param)M_FOREACH_216(mfun, ##__VA_ARGS__)
#define M_FOREACH_218(mfun, param, ...)  mfun(param)M_FOREACH_217(mfun, ##__VA_ARGS__)
#define M_FOREACH_219(mfun, param, ...)  mfun(param)M_FOREACH_218(mfun, ##__VA_ARGS__)
#define M_FOREACH_220(mfun, param, ...)  mfun(param)M_FOREACH_219(mfun, ##__VA_ARGS__)
#define M_FOREACH_221(mfun, param, ...)  mfun(param)M_FOREACH_220(mfun, ##__VA_ARGS__)
#define M_FOREACH_222(mfun, param, ...)  mfun(param)M_FOREACH_221(mfun, ##__VA_ARGS__)
#define M_FOREACH_223(mfun, param, ...)  mfun(param)M_FOREACH_222(mfun, ##__VA_ARGS__)
#define M_FOREACH_224(mfun, param, ...)  mfun(param)M_FOREACH_223(mfun, ##__VA_ARGS__)
#define M_FOREACH_225(mfun, param, ...)  mfun(param)M_FOREACH_224(mfun, ##__VA_ARGS__)
#define M_FOREACH_226(mfun, param, ...)  mfun(param)M_FOREACH_225(mfun, ##__VA_ARGS__)
#define M_FOREACH_227(mfun, param, ...)  mfun(param)M_FOREACH_226(mfun, ##__VA_ARGS__)
#define M_FOREACH_228(mfun, param, ...)  mfun(param)M_FOREACH_227(mfun, ##__VA_ARGS__)
#define M_FOREACH_229(mfun, param, ...)  mfun(param)M_FOREACH_228(mfun, ##__VA_ARGS__)
#define M_FOREACH_230(mfun, param, ...)  mfun(param)M_FOREACH_229(mfun, ##__VA_ARGS__)
#define M_FOREACH_231(mfun, param, ...)  mfun(param)M_FOREACH_230(mfun, ##__VA_ARGS__)
#define M_FOREACH_232(mfun, param, ...)  mfun(param)M_FOREACH_231(mfun, ##__VA_ARGS__)
#define M_FOREACH_233(mfun, param, ...)  mfun(param)M_FOREACH_232(mfun, ##__VA_ARGS__)
#define M_FOREACH_234(mfun, param, ...)  mfun(param)M_FOREACH_233(mfun, ##__VA_ARGS__)
#define M_FOREACH_235(mfun, param, ...)  mfun(param)M_FOREACH_234(mfun, ##__VA_ARGS__)
#define M_FOREACH_236(mfun, param, ...)  mfun(param)M_FOREACH_235(mfun, ##__VA_ARGS__)
#define M_FOREACH_237(mfun, param, ...)  mfun(param)M_FOREACH_236(mfun, ##__VA_ARGS__)
#define M_FOREACH_238(mfun, param, ...)  mfun(param)M_FOREACH_237(mfun, ##__VA_ARGS__)
#define M_FOREACH_239(mfun, param, ...)  mfun(param)M_FOREACH_238(mfun, ##__VA_ARGS__)
#define M_FOREACH_240(mfun, param, ...)  mfun(param)M_FOREACH_239(mfun, ##__VA_ARGS__)
#define M_FOREACH_241(mfun, param, ...)  mfun(param)M_FOREACH_240(mfun, ##__VA_ARGS__)
#define M_FOREACH_242(mfun, param, ...)  mfun(param)M_FOREACH_241(mfun, ##__VA_ARGS__)
#define M_FOREACH_243(mfun, param, ...)  mfun(param)M_FOREACH_242(mfun, ##__VA_ARGS__)
#define M_FOREACH_244(mfun, param, ...)  mfun(param)M_FOREACH_243(mfun, ##__VA_ARGS__)
#define M_FOREACH_245(mfun, param, ...)  mfun(param)M_FOREACH_244(mfun, ##__VA_ARGS__)
#define M_FOREACH_246(mfun, param, ...)  mfun(param)M_FOREACH_245(mfun, ##__VA_ARGS__)
#define M_FOREACH_247(mfun, param, ...)  mfun(param)M_FOREACH_246(mfun, ##__VA_ARGS__)
#define M_FOREACH_248(mfun, param, ...)  mfun(param)M_FOREACH_247(mfun, ##__VA_ARGS__)
#define M_FOREACH_249(mfun, param, ...)  mfun(param)M_FOREACH_248(mfun, ##__VA_ARGS__)
#define M_FOREACH_250(mfun, param, ...)  mfun(param)M_FOREACH_249(mfun, ##__VA_ARGS__)
#define M_FOREACH_251(mfun, param, ...)  mfun(param)M_FOREACH_250(mfun, ##__VA_ARGS__)
#define M_FOREACH_252(mfun, param, ...)  mfun(param)M_FOREACH_251(mfun, ##__VA_ARGS__)
#define M_FOREACH_253(mfun, param, ...)  mfun(param)M_FOREACH_252(mfun, ##__VA_ARGS__)
#define M_FOREACH_254(mfun, param, ...)  mfun(param)M_FOREACH_253(mfun, ##__VA_ARGS__)
#define M_FOREACH_255(mfun, param, ...)  mfun(param)M_FOREACH_254(mfun, ##__VA_ARGS__)
#define M_FOREACH_256(mfun, param, ...)  mfun(param)M_FOREACH_255(mfun, ##__VA_ARGS__)
#define M_FOREACH_(mfun, count, ...) M_FOREACH_##count(mfun,##__VA_ARGS__)
#define M_FOREACH_I(mfun, count, ...) M_FOREACH_(mfun, count,##__VA_ARGS__)
#define UTIL_FOREACH(mfun,...) M_FOREACH_I(mfun, UTIL_COUNT_ARG(__VA_ARGS__),__VA_ARGS__)

#define M_FOREACH_PAIR_(mfun, count, ...) M_FOREACH_PAIR_##count(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_I(mfun, count, ...) M_FOREACH_PAIR_(mfun, count,##__VA_ARGS__)
#define UTIL_FOREACH_PAIR(mfun,...) M_FOREACH_PAIR_I(mfun, UTIL_COUNT_ARG(__VA_ARGS__), __VA_ARGS__)
#define M_FOREACH_PAIR_0(mfun,...)
#define M_FOREACH_PAIR_2(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_0(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_4(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_2(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_6(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_4(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_8(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_6(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_10(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_8(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_12(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_10(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_14(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_12(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_16(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_14(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_18(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_16(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_20(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_18(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_22(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_20(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_24(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_22(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_26(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_24(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_28(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_26(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_30(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_28(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_32(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_30(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_34(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_32(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_36(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_34(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_38(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_36(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_40(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_38(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_42(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_40(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_44(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_42(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_46(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_44(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_48(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_46(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_50(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_48(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_52(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_50(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_54(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_52(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_56(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_54(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_58(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_56(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_60(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_58(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_62(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_60(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_64(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_62(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_66(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_64(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_68(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_66(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_70(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_68(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_72(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_70(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_74(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_72(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_76(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_74(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_78(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_76(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_80(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_78(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_82(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_80(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_84(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_82(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_86(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_84(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_88(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_86(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_90(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_88(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_92(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_90(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_94(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_92(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_96(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_94(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_98(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_96(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_100(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_98(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_102(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_100(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_104(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_102(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_106(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_104(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_108(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_106(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_110(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_108(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_112(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_110(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_114(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_112(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_116(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_114(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_118(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_116(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_120(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_118(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_122(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_120(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_124(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_122(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_126(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_124(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_128(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_126(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_130(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_128(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_132(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_130(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_134(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_132(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_136(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_134(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_138(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_136(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_140(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_138(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_142(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_140(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_144(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_142(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_146(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_144(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_148(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_146(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_150(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_148(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_152(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_150(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_154(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_152(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_156(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_154(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_158(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_156(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_160(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_158(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_162(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_160(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_164(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_162(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_166(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_164(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_168(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_166(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_170(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_168(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_172(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_170(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_174(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_172(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_176(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_174(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_178(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_176(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_180(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_178(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_182(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_180(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_184(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_182(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_186(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_184(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_188(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_186(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_190(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_188(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_192(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_190(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_194(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_192(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_196(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_194(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_198(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_196(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_200(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_198(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_202(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_200(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_204(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_202(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_206(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_204(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_208(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_206(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_210(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_208(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_212(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_210(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_214(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_212(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_216(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_214(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_218(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_216(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_220(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_218(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_222(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_220(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_224(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_222(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_226(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_224(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_228(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_226(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_230(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_228(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_232(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_230(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_234(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_232(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_236(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_234(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_238(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_236(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_240(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_238(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_242(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_240(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_244(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_242(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_246(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_244(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_248(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_246(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_250(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_248(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_252(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_250(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_254(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_252(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_256(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_254(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_258(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_256(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_260(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_258(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_262(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_260(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_264(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_262(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_266(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_264(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_268(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_266(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_270(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_268(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_272(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_270(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_274(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_272(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_276(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_274(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_278(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_276(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_280(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_278(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_282(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_280(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_284(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_282(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_286(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_284(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_288(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_286(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_290(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_288(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_292(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_290(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_294(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_292(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_296(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_294(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_298(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_296(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_300(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_298(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_302(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_300(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_304(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_302(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_306(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_304(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_308(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_306(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_310(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_308(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_312(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_310(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_314(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_312(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_316(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_314(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_318(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_316(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_320(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_318(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_322(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_320(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_324(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_322(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_326(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_324(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_328(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_326(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_330(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_328(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_332(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_330(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_334(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_332(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_336(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_334(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_338(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_336(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_340(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_338(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_342(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_340(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_344(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_342(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_346(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_344(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_348(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_346(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_350(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_348(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_352(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_350(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_354(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_352(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_356(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_354(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_358(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_356(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_360(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_358(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_362(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_360(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_364(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_362(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_366(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_364(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_368(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_366(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_370(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_368(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_372(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_370(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_374(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_372(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_376(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_374(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_378(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_376(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_380(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_378(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_382(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_380(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_384(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_382(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_386(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_384(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_388(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_386(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_390(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_388(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_392(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_390(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_394(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_392(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_396(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_394(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_398(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_396(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_400(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_398(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_402(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_400(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_404(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_402(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_406(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_404(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_408(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_406(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_410(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_408(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_412(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_410(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_414(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_412(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_416(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_414(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_418(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_416(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_420(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_418(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_422(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_420(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_424(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_422(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_426(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_424(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_428(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_426(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_430(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_428(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_432(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_430(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_434(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_432(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_436(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_434(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_438(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_436(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_440(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_438(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_442(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_440(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_444(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_442(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_446(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_444(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_448(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_446(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_450(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_448(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_452(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_450(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_454(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_452(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_456(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_454(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_458(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_456(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_460(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_458(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_462(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_460(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_464(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_462(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_466(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_464(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_468(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_466(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_470(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_468(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_472(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_470(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_474(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_472(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_476(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_474(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_478(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_476(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_480(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_478(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_482(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_480(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_484(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_482(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_486(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_484(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_488(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_486(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_490(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_488(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_492(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_490(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_494(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_492(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_496(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_494(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_498(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_496(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_500(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_498(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_502(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_500(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_504(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_502(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_506(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_504(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_508(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_506(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_510(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_508(mfun,##__VA_ARGS__)
#define M_FOREACH_PAIR_512(mfun,arg1,arg2,...) mfun(arg1,arg2)M_FOREACH_PAIR_510(mfun,##__VA_ARGS__)


